קורס מטלב לפיסיקאים שיעור מס' 10: משתנים מורכבים

Similar documents
סדנת יסודות מטלב שיעור מס' 6: ארגון, מיון ועיבוד נתונים

ASP.Net MVC + Entity Framework Code First.

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

בוחן בתכנות בשפת C בצלחה

מבוא לתכנות ב- JAVA תרגול 7

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

מבוא למחשב בשפת פייתון

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות

Practical Session No. 13 Amortized Analysis, Union/Find

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

Theories of Justice

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

תכניות סטנדרטיות ב UNIX שרשור פקודות באמצעות Pipeline עבודה ב- bash

הרצאה מספר 10 נושאים לשיעור זה: סיכום הפקודות עד לשיעור זה *** )S-Q( = מקומות בהם ניתן לשלב תתי שאילתות

A R E Y O U R E A L L Y A W A K E?

ל"תוכנה" שכותבים, כמו פונקציה זו, קוראים "קוד"

מערכים Haim Michael. All Rights Reserved.


שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

SPSS 10.0 FOR WINDOWS

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

ניסוי בפייתון מכון טכנולוגי לישראל הניסוי מתקיים בבניין פישבך, חדר 573 )במסדרון למאייר(. המאחר ביותר מ- 53 דקות לא יורשה לבצע את הניסוי.

Web Services שפת SQL. כתבה: זהבה יעקובסון ליווי מקצועי : ארז קלר

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

מבוא למחשב בשפת Matlab

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

זה. Nir Adar

תרגול 8. Hash Tables

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

דיאגרמה לתיאור Classes

תכנות בC קבצים מצב פתיחת הקובץ שם תיקני במערכת הפעלה. אם הקובץ לא נמצא במיקום בו אני מריץ את התוכנית יש להוסיף מיקומו בדיסק. פתיחת הקובץ לקריאה:

Redirection The Input Buffer

מבנה התכנית יסודות מדעי המחשב התכנית הראשונה שלי

יסודות מבני נתונים. תרגול :9 ערימה - Heap

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

Structural Vs. Nominal Typing

התכנית הראשונה שלי

זה אומר שאחרי הכרות עם השפה מה שדורש השקעה אפשר להקדיש את מרבית הזמן לצד המוזיקלי יצירתי ולא התכנותיÆ איזה כיף

אוסף תרגילים למעבדה ביוניקס - 4

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים

1.1. הקדמה (דיסק). מדריכי. (מחיצות) Link

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

קורס תוכנת מטלב ויישומיה שיעור מס' 10: תכנות ממשקי משתמש

אנגלית (MODULE E) בהצלחה!

אוניברסיטת בן גוריון בנגב

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

תורשכ ירפס לכ ץבוק " ב י קלח יללכ רעש

פרוטוקול HTTP הפונקציה header שליחת מידע דחוס. עבודה עם cookies Haim Michael. All Rights Reserved.

המבנה הגאומטרי של מידה

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים

תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

שאלון ד' הוראות לנבחן

עבודה מס' 3: תכנות מונחה עצמים ורשימות

THINKING ABOUT REST THE ORIGIN OF SHABBOS

לשרטוט חשמלי בתוכנת OrCad-Capture

T H E S U N F L O W E R L I M I T S T O F O R G I V E N E S S

כיורי גרניט כיורי מטבח עשויים גרניט להתקנה שטוחה, עמידות מלאה בפני שריטות וכתמים, עמידות בחום עד C ניקוי קל ומהיר צבע שאינו דוהה

פרק מיון וחיפוש - לשם מה? הגדרה

לאחר מכן נוכל לכתוב תוכניות שכוללות אלגוריתמים

Apple, keys, pen, pencils, pencilbox,(toy)elephant,( toy) boy, (toy) girl, ball

פעולות קלט פלט Streams( )I\O

יסודות התכנות ב- VBA לתוכנת Microsoft Excel

פרצות אבטחה נפוצות בהעלאת קבצים בעזרת PHP

008, LDR מי צריך את זה? אלחנן אדלר

שאלון ו' הוראות לנבחן

Operating Systems, 142. Practical Session 12 File Systems, part 2

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

Summing up. Big Question: What next for me on my Israel Journey?

תרגיל בית מספר - 1 להגשה עד 9 בנובמבר בשעה 23:55

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

מספר מילה. you very hungry am דוגמאות: decision trees ההודעה.

מבוא למדעי המחשב בשפת JAVA חוברת תרגילים... 1

תכנות בטוח חלק ב ' מאת עידו קנר

Name Page 1 of 5. ,דף ד: This week s bechina starts at the bottom of שיר של חול

בחינת בגרות, תשע"ז מס' שאלון: מדעי המחשב שאלה 1. Java. blog.csit.org.il הילה קדמן

Patents Basics. Yehuda Binder. (For copies contact:

אוניברסיטת בן גוריון בנגב

Genetic Tests for Partners of CF patients

שאלון ו' הוראות לנבחן

מספר ת"ז: יש לסמן את התשובה הטובה ביותר בתשובון. לא יינתן ניקוד על סימון תשובה בטופס הבחינה או במחברת הבחינה.

interface Student {tag: Student, name: string; age: number;} const makestudent = ( name: string, age: number ) : Student =>

פעילות להבניית מיומנות פענוח מידע מגרפים

מבוא לתרבות סייבר שיעור מס

תירואית הקיטסיטטס. 5 קרפ

תרגיל בית מספר - 5 להגשה עד 7 ביוני )יום ראשון( בשעה 32555

מבוא לרשתות - תרגול מס' 11 Transparent Bridges

נילי חמני

(MODULE E) ב ה צ ל ח ה!

תרגול 11 תור עץ חיפוש בינארי

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש

הקדמה בדיקת תמיכה ב- SSL מאת עידו קנר

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

Transcription:

שיעור מס' : משתנים מורכבים מערכי תאים מערך תאים הוא מערך שבו כל איבר בעצמו הוא מערך מסוג ומימדים כלשהם. לדוגמא מערך עמודה: מס' איבר 2 3 4 5 תוכן סקלר נומרי סקלר לוגי מטריצה נומרית 2 3 6 מערך-תאים (שורה אחת, 3 איברים) עם האיברים הבאים: מערך ריק סוגי המשתנים בדוגמא למעלה אינם מחייבים, וגם אחרי שניתן ערך לאיבר מסוים, ניתן להחליפו בערך מסוג אחר ומימד אחר. לדוגמא ניתן להחליף את מחרוזת התווים בתא השלישי במערך נומרי תלת-ממדי. בדרך כלל משתמשים במערכי תאים לצורך ארגון נתונים מאותו סוג, אבל בממדים שונים. לדוגמא: מחרוזות תווים: רשימה של שמות (כל אחד באורך אחר). מטריצות נומריות: נתונים שנקראו מקבצים שונים, בדרך כלל עם אותו מספר עמודות אבל עם מספר שורות שונה. יצירת מערכי תאים וטיפול בהם A={'ab' 2 [] ones(3)} A = 'ab' [2] [] [3x3 double] E34 = cell(3,4) E34 = [] [] [] יצירה ע"י ציון האיברים, מוקפים בסוגריים מסולסלים {} אתחול מערך תאים nxm שכל איבריו הם מערך ריק: A(4) [3x3 double] בחירת תאים מתוך המערך: כמו במערכים רגילים. התוצאה היא תא או מערך תאים. בחירת תא בודד: A(2:end) [2] [] [3x3 double] בחירת מספר תאים עמ' מתוך 7

[A ; E34] 'ab' [2] [] [3x3 double] [] [] [] AE(:,3) = [] 'ab' [2] [3x3 double] AE(2,2) = {6:9} 'ab' [ 2] [3x3 double] [] [x4 double] [] AE{,} ab AE{,}(2) b AE{4,2} = {'text' ; 'string'} 'ab' [ 2] [3x3 double] [] [x4 double] [] [] {2x cell } [] AE{,}() = 'A' 'Ab' [ 2] [3x3 double] [] [x4 double] [] [] {2x cell } [] C = {'a' } C2 = {'b' 2} C3 = {C C2} C4 = [C C2] var_mat = cell2mat(var_cell) Cmat = {,2:5 ; (6:9)' eye(4)} Cmat = [ ] [x4 double] [4x double] [4x4 double] cell2mat(cmat) 2 3 4 5 6 7 8 9 שרשור: כמו במערך רגיל. מחיקת תאים: כמו במערך רגיל. החלפת תא: כמו במערך רגיל. יש להגדיר את התוכן המחליף כתא! גישה לתוכן של תא (בודד): ע"י {} גישה לחלק מתוכן של תא: החלפת תוכן של תא: שינוי חלק מתוכן של תא: תרגיל: נתונים המשתנים: מה ההבדל בין הפקודה לפקודה: המרה ממערך תאים למערך רגיל: אפשרית רק אם: תוכן התאים אינו מערך תאים התוכן כולל איברים מסוג אחיד (מספר או תו.) המימדים מתאימים לשרשור. עמ' 2 מתוך 7

קריאה וכתיבה של קבצי אקסל קריאת קובץ אקסל num xlsread(fname); nums=xlsread('squarewave.csv'); nums(:4,:) -.3 -.4.4 -.3 -.96.4 -.3 -.96 -.4 -.3 -.92 [nums,texts] = xlsread(fname); [nums,texts]=xlsread('squarewave.csv'); texts text 3 cell array 'time' 'Vin' 'Vout' [nums,texts,raw] = xlsread(fname); [nums,texts,raw]=xlsread('squarewave.csv'); raw(:4,:) 4 3 cell array 'time' 'Vin' 'Vout' [-.3] [-.4] [.4] [-.3] [-.96] [.4] [-.3] [-.96] [-.4] קריאה של המטריצה הנומרית הגדולה ביותר: נתונים שאינם נומריים מקבלים.NaN קריאת מספרים לחוד וטקסט לחוד הטקסטים הם מערך תאים קריאת התאים הגולמיים כתיבה לקובץ אקסל יש להכין מערך-תאים ולכתוב אותו לקובץ. כל תא במערך נכתב לתא בקובץ אקסל. xlswrite(fname,out_array) אם כל הפלט נומרי, out_array יכול להיות מטריצה נומרית. איבר שהוא NaN ייצר תא ריק בקובץ האקסל. אם יש גם טקסטים, out_array צריך להיות מערך-תאים. כדי לייצר תא ריק בקובץ האקסל, יש ליצור בתא המתאים במשתנה out_array מערך ריק. דוגמא : הפונקציה danalysis מקבלת קלט שם של קובץ בפורמט אקסל. הקובץ כולל טבלה של זמנים וכן שני סיגנלים שנמדדו בזמנים אלה. הפונקציה קוראת את הקובץ ומחשבת מספר נתונים על הזמנים והסיגנלים. הסקריפט dfiles מפעיל את הפונקציה על שני קבצים, יוצר טבלה שמסכמת את הנתונים וכותב אותה לקובץ אקסל. מערכי תאים לטקסט וגרפיקה הוספת טקסט עם מספר שורות לגרף: הטקסטים בתאים מוצגים זה מתחת לזה. צורה זו ישימה לפקודות טקסט, כותרות לצירים וכותרת לגרף. במקרא לגרף, ניתן לציין משתנה אחד עבור כל העקומות: מערך- תאים שבו כל תא הוא מחרוזת-מקרא לעקומה אחת. Txt={'upper line' 'lower line'} title(txt) ylabel(txt) text(x,y,txt) curve_names={'g','g2','combined'} legend(curve_names) עמ' 3 מתוך 7

dshow2ways('sinewave.csv'); Vout signals Two ways to display signals : upper : versus time, lower : parametric plot 2 Vin Vout - -2 -. -.5.5. time.5 דוגמא 2: הפונקציה dshow2ways מקבלת קלט שם של קובץ בפורמט אקסל. הקובץ כולל טבלה של זמנים וכן שני סיגנלים שנמדדו בזמנים אלה. הפונקציה קוראת את הקובץ ומציגה את הסיגנלים פעמיים, על שתי מערכות צירים: פעם אחת - שני הסיגנלים כפונקציה של הזמן. פעם שניה - סיגנל שני כפונקציה של סיגנל ראשון. המקרא וכותרות הצירים נלקחים מכותרות העמודות שנקראו מקובץ האקסל. כמו-כן הפונקציה מחזירה את המספרים ואת הכותרות שנקראו מן הקובץ. -.5 - -.5 - -.5.5.5 Vin מבנים structures מבנה structure הוא "משתנה מקובץ" כלומר אוסף של משתנים תחת שם אחד. המשתנים בתוך ה- structure נקראים שדות. כמו למשתנים, לכל שדה יש שם וערך. דוגמא אפשרית למבנה: תוכן שם שדה experiment מטריצה נומרית data מערך-תאים (עמודה אחת, 3 איברים) עם האיברים הבאים: fnames 2 3 מערך ריק comments סקלר לוגי processed מבנה עם השדות הבאים: parameters סקלר נומרי v מערך נומרי חד-ממדי T method סוגי המשתנים בדוגמא למעלה אינם מחייבים, וגם אחרי שניתן ערך לשדה מסוים, ניתן להחליפו בערך מסוג אחר ומימד אחר. לדוגמא ניתן להחליף את הסקלר הלוגי בשדה processed ב. הוא מערך שכל האיברים שבו הם מבנים בעלי אותם שדות. שמות השדות (ומספר מערך מבנים structure array השדות) זהים, אבל אין קשר בין תוכן שדה עם שם מסוים באיברים שונים. למשל בדוגמא שלמעלה, באיבר אחד השדה processed יכול להיות ובאיבר אחר סקלר נומרי. עמ' 4 מתוך 7

יצירת מבנים וטיפול בהם מבנה בודד מציינים שדה ע"י נקודה בין שם המשתנה לשם השדה: structure_name.field_name יצירת מבנה ע"י השמה לשדות: השמה לשדה הופכת משתנה ל- structure. השמה לשדה שאינו קיים ב- structure קיים מוסיפה לו שדה. יצירת מבנה ע"י פקודה: הארגומנטים value2,value הם מחרוזות תווים שמציינים את שמות השדות. גישה לשדה שליפת תוכן חלק מן התוכן שינוי תוכן של שדה (במקרה זה, מחיקת השורה הראשונה) קבלת מידע על מבנים האם המשתנה הוא מבנה רשימת השדות במבנה מתקבל מערך תאים של שמות השדות האם קיים שדה fieldname במבנה S. מתקבל סקלר לוגי. אילו מן השמות במערך התאים C הם שדות במבנה S. isfield(s,names) מתקבל מערך לוגי. clear all s.indx = indx: data: [3x3 double] s.title = 'with dog' indx: data: [3x3 double] s.data = rand(3) indx: data: [3x3 double] Strct=struct(field,value,field2,value2...) Addr = struct('street','narkisim','number',23) Addr = street: 'Narkisim' number: 23 structure_name.field_name s.indx s.title(:4) with s.data(,:)=[] indx: data: [2x3 double] isstruct(var_name) fieldnames(var_struct) fieldnames(s) 'indx' 'title' 'data' isfield(s, 'fieldname') isfield(s,c) names={'indx','tmp','data'} name 'indx' 'tmp' 'data' עמ' 5 מתוך 7

מערכי מבנים יצירת מערך מבנים ע"י השמה לשדות: השמה של מבנה לתוך איבר n במערך (שלא קיים) יוצרת מערך של n מבנים, שלכולם שדות כמו למבנה זה. גישה לשדה במערך מבנים: גישה לשדה במבנה אחד לדוגמא: שליפת תוכן שדה מכמה מבנים במערך: מתקבל מערך תאים כאשר תוכן השדה ממבנה n נמצא בתא מס' n. השמה לשדה של איבר בתוך מערך שלא קיים יוצרת מערך עד וכולל האלמנט, כאשר לכל האיברים יש שדה זה. ערך ברירת המחדל לכל השדות שלא אותחלו הוא מערך ריק. השמה לשדה שאינו קיים במערך מבנים קיים מוסיפה שדה זה לכל האיברים במערך. אתחול מערך ע"י פקודה: השמת מבנה לתוך איבר במערך שלא קיים, יוצרת מערך של מבנים עם שמות שדות זהים למבנה זה (ותוכן המבנים מאותחל למערך ריק). אם לפחות אחד מן הארגומנטים value הוא מערך תאים, יתקבל מערך מבנים מאותו מימד כמו מערך התאים, כאשר תוכן השדה המתאים נלקח ממערך התאים ו"מפוזר" בין איברי המערך. sarray(5) = s sarray = x5 struct array with fields: indx title data structure_name(n).field_name sarray(3).indx [] {structure_name.field_name} clear all s(5).indx = x5 struct array with fields: indx s(3).title = 'new title' x5 struct array with fields: indx title s(2) indx: [] title: [] Strct=struct(field,value,field2,value2...) As(5) = struct('name',,'name2','txt') A x5 struct array with fields: name name2 Test = struct('name',cell(5,),'name2',[]) Test = 5x struct array with fields: name name2 משיקולי ניהול זיכרון, לא מומלץ להוסיף שדות למערך קיים. עדיף לאתחל מערך מבנים ע"י פקודת.struct קריאת קובץ כללי פקודת importdata קוראת קובץ באחד מן הפורמטים המוכרים ע"י מטלב. הפקודה פועלת רק אם פורמט הקובץ מתאים להגבלות/הנחות של מטלב. המידע מתקבל בצורת structure אשר השדות שלו תלויים בסוג הפורמט. דוגמאות לפורמטים נפוצים: קובץ טקסט המכיל מידע נומרי. ניתן לקרוא גם קובץ שיש בו בשורה הראשונה כותרות טקסטואליות לעמודות. s=importdata('ldgw.txt') data: [463x5 double] textdata: {'t' 'lions' 'deer' 'grass' 'water'} colheaders: {'t' 'lions' 'deer' 'grass' 'water'} עמ' 6 מתוך 7

dshowtext('ldgw.txt'); Data from file : LDGW. txt 6 5 lions deer grass water דוגמא 3: הפונקציה dshowtext קוראת נתונים מקובץ טקסט שיש בו כותרות לעמודות. הכותרות משמשות לציר x ולמקרא העקומות. 4 signals 3 2 2 3 4 5 6 7 8 9 x=importdata('squarewave.csv') x = struct with fields: data: [ 3 double] textdata: {'time' 'Vin' 'Vout'} colheaders: {'time' 'Vin' 'Vout'} x.textdata 3 cell array 'time' 'Vin' 'Vout' v = importdata('wav\f.wav') v = struct with fields: data: [4756 double] fs: 8 t = (:length(v.data))/v.fs; plot(t,v.data) axis tight t גיליון אקסל או קובץ CSV תרגיל: מהי הקוד שבוחר את הנתון המודגש במבנה x למעלה? קול (אודיו) דגימות תדירות הדגימה שימוש במידע:.5..5 -.5 -. -.5.5.5 2 2.5 3 3.5 4 4.5 5 עמ' 7 מתוך 7